home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-05-30 | 51.7 KB | 1,527 lines |
- ''$DEFINE DEBUG ''Define for script development/debugging
-
- '$INCLUDE 'setupapi.inc'
- '$INCLUDE 'msdetect.inc'
- '$INCLUDE 'msregdb.inc'
-
- '$DEFINE UK
- '' UK
-
- CONST LOGO = 1 ''Bitmap ID
-
- ''Dialog ID's
- CONST WELCOMEDLG = 100
- CONST ASKQUIT = 200
- CONST DESTPATH = 300
- CONST EXITFAILURE = 400
- CONST PRODUCTIDDLG = 500
- CONST EXITQUIT = 600
- CONST EXITSUCCESS = 700
- CONST OPTIONS = 800
- CONST TOOLSOPTIONS = 801
- CONST APPHELP = 900
- CONST BADPATHDLG = 6400
- CONST BEGIN = 6100
- CONST CUSTINST = 6200
- CONST TOOBIGDLG = 6500
- CONST INFORMATION = 7500
- CONST CONFIRM = 7700
-
- CONST COMPLETESETUP = 1
- CONST CUSTOMSETUP = 2
- CONST MINIMUMSETUP = 3
-
- CONST MANAGERFILES = 1
- CONST WRITEFILES = 2
- CONST DBFILES = 3
- CONST SPREADFILES = 4
- CONST FORMSFILES = 5
- CONST COMMSFILES = 6
- CONST TOOLSFILES = 7
- CONST APPFILES = 8
- CONST SYSTEMFILES = 9
- CONST EXAMPLESFILES = 1
- CONST FILTERSFILES = 2
- CONST SETUP_MSG$ = "Ability for Windows Setup"
-
- ''Disk cost list symbols
- CONST APPNEEDS$ = "Ability"
- CONST MANAGERNEEDS$ = "Manager"
- CONST WRITENEEDS$ = "Write"
- CONST DBNEEDS$ = "Database"
- CONST SPREADNEEDS$ = "Spreadsheet"
- CONST FORMSNEEDS$ = "Forms"
- CONST COMMSNEEDS$ = "Comms"
- CONST TOOLSNEEDS$ = "Tools"
- CONST SYSTEMNEEDS$ = "System"
- CONST EXAMPLESNEEDS$ = "Examples"
- CONST FILTERSNEEDS$ = "Filters"
-
- ''Dialog list symbol names
- CONST CHECKSTATES$ = "CheckItemsState"
- CONST STATUSTEXT$ = "StatusItemsText"
- CONST DRIVETEXT$ = "DriveStatusText"
- CONST EXTRACOSTS$ = "ExtraCosts" ''List of extra costs to add per drive
- CONST BIGLIST$ = "BigList" ''List of option files cost calc results (boolean)
- CONST ORG_STR$ = "OrgOut"
- CONST NAME_STR$ = "NameOut"
- CONST CONFIRMTEXTLIST$ = "ConfirmTextIn"
- CONST EXTRACOSTS1$ = "ExtraCosts1"
- CONST BIGLIST1$ = "BigList1"
- CONST CHECKSTATES1$ = "CheckItemsState1"
- CONST STATUSTEXT1$ = "StatusItemsText1"
- CONST DRIVETEXT1$ = "DriveStatusText1"
-
- ''Dialog Proc Names
- CONST FMODELESSDLGPROC$ = "FModelessDlgProc"
- CONST HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure
-
- GLOBAL CUIDLL$
- GLOBAL DEST$ ''Default destination directory.
- GLOBAL WinDrive$
- GLOBAL WINDIRECTORY$
- GLOBAL OPTCUR$ ''Option selection from option dialog.
- GLOBAL PathToShare$
- GLOBAL Check%
- GLOBAL szUserName$
- GLOBAL szCompany$
- GLOBAL szProductID$
- GLOBAL CURRENTMODULE%
-
- GLOBAL WriteExamples%
- GLOBAL WriteW4W%
- GLOBAL DBExamples%
- GLOBAL DBW4W%
- GLOBAL SpreadExamples%
- GLOBAL SpreadW4W%
- GLOBAL FormsExamples%
- GLOBAL ToolsSpelling%
- GLOBAL ToolsCards%
-
- GLOBAL Language$
- GLOBAL Restart$
-
- DECLARE SUB Install
- DECLARE SUB RegisterOle2
- DECLARE SUB AddRegData (RegData$)
- DECLARE SUB CheckForShare
- DECLARE SUB FreeLibrary LIB "KERNEL.EXE" (arg%)
- DECLARE SUB AddOptFilesToCopyList (ftype%)
- DECLARE SUB RecalcOptFiles (ftype%)
- DECLARE SUB RecalcPath (ftype%)
- DECLARE SUB SetDriveStatus
- DECLARE SUB CheckOptFiles (ftype%)
- DECLARE SUB AddOptFilesToCopyList1 (ftype%)
- DECLARE SUB RecalcOptFiles1 (ftype%)
- DECLARE SUB SetDriveStatus1
- DECLARE SUB InitCustInstall
- DECLARE SUB GetUserInfo
- DECLARE SUB ShowProductID
- DECLARE SUB AskEXIT
- DECLARE SUB Welcome
- DECLARE SUB Toobig
- DECLARE SUB RestartDlg
- DECLARE SUB BadPath
- DECLARE SUB GetPath
- DECLARE SUB CheckSystem
- DECLARE SUB FQuit
- DECLARE SUB InitData
- DECLARE SUB UpdateAbilityIni
- DECLARE SUB UpdateCommsIni
- DECLARE SUB UpdateWinIni
- DECLARE SUB CreateProgman
- DECLARE SUB AddToBillboard
- DECLARE SUB FillCopyList
- DECLARE SUB GetCustomInstall
- DECLARE SUB GetMinimumInstall
- DECLARE SUB GetItemsInstall(ftype%)
- DECLARE SUB ShowItemsInstall
- DECLARE SUB RestartSystem ()
-
- DECLARE FUNCTION GetOptionInstall () AS INTEGER
- DECLARE FUNCTION ConfirmUserInfo() AS INTEGER
- DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
-
- DECLARE FUNCTION ExitWindowsExec LIB "USER.EXE" (arg1$, arg2$) AS INTEGER
- DECLARE FUNCTION ShowWindow LIB "USER.EXE" (hWnd%,Flag%) AS INTEGER
- DECLARE FUNCTION IsShared LIB "a4w.dll" (arg$) AS INTEGER
- DECLARE FUNCTION WriteProgramId LIB "a4w.dll" (arg1$,arg2$,arg3$,arg4$) AS INTEGER
-
- INIT:
- CUIDLL$ = "a4w.dll" ''Custom user interface dll
- '$IFDEF UK
- Language$ = "Ability Spelling UK"
- '$ELSE
- Language$ = "Ability Spelling USA"
- '$ENDIF
- Restart$ = "NO"
- FrameWindow% = HwndFrame ()
- i% = ShowWindow(FrameWindow%,3)
- SetBitmap CUIDLL$, LOGO
- SetTitle SETUP_MSG$
- szInf$ = GetSymbolValue("STF_SRCINFPATH")
- IF szInf$ = "" THEN
- szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
- END IF
- ReadInfFile szInf$
- InitData
- '$IFDEF DEBUG
- i% = SetSizeCheckMode(scmOnIgnore) '' could use scmOff; def = scmOnFatal
- '$ENDIF ''DEBUG
- CheckSystem
- Welcome
- GetUserInfo
- GetPath
- s% = GetOptionInstall()
- IF s% = CUSTOMSETUP THEN
- GetCustomInstall
- ELSEIF s% = MINIMUMSETUP THEN
- GetMinimumInstall
- END IF
- ShowProductID
- Install
- QUIT:
- ON ERROR GOTO ERRQUIT
- FQuit
- END
- ERRQUIT:
- i% = DoMsgBox("Setup sources were corrupted, call xxx-xxxx!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
- END
-
- '**
- '** Purpose:
- '** Builds the copy list and performs all installation operations.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB Install STATIC
- CreateDir DEST$, cmoNone
- ClearCopyList
- FillCopyList
- AddToBillboard
- SetCopyGaugePosition 89,135
-
- SetRestartDir GetWindowsDir()
-
- CopyFilesInCopyList
- i% = WriteProgramId (DEST$+"\about.dll",szUserName$,szCompany$,szProductID$)
- UpdateAbilityIni
- UpdateCommsIni
- UpdateWinIni
- RegisterOle2
- CreateProgman
- CheckForShare
- RestartSystem
- END SUB
-
-
- SUB CheckForShare STATIC
- IF Check% = 1 THEN
- PathToShare$ = FindFileInTree("SHARE.EXE","C:\")
- i% = IsShared(PathToShare$ + " /L:500 /F:5100")
- IF i% = 0 THEN
- Restart$ = "YES"
- ENDIF
- ENDIF
- END SUB
-
-
- '**
- '** Purpose:
- '** Appends a file name to the end of a directory path,
- '** inserting a backslash character as needed.
- '** Arguments:
- '** szDir$ - full directory path (with optional ending "\")
- '** szFile$ - filename to append to directory
- '** Returns:
- '** Resulting fully qualified path name.
- '*************************************************************************
- FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
- IF szDir$ = "" THEN
- MakePath = szFile$
- ELSEIF szFile$ = "" THEN
- MakePath = szDir$
- ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
- MakePath = szDir$ + szFile$
- ELSE
- MakePath = szDir$ + "\" + szFile$
- END IF
- END FUNCTION
-
-
- '**
- '** Purpose:
- '** Adds the specified option files to the copy list.
- '** Arguments:
- '** ftype% - type of files to add, one of the following:
- '** MANAGERFILES, WRITEFILES, DBFILES
- '** Returns:
- '** none.
- '*************************************************************************
- SUB AddOptFilesToCopyList (ftype%) STATIC
- IF ftype% = APPFILES THEN
- SrcDir$ = GetSymbolValue("STF_SRCDIR")
- WinDir$ = GetWindowsDir()
- ELSEIF ftype% = SYSTEMFILES THEN
- SrcDir$ = GetSymbolValue("STF_SRCDIR")
- WinDir$ = GetWindowsDir()
- ELSEIF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN
- SrcDir$ = GetSymbolValue("STF_SRCDIR")
- WinDir$ = GetWindowsDir()
- ELSE
- GOTO END_ADDOPTFILES
- ENDIF
- IF ftype% = APPFILES THEN
- AddSectionFilesToCopyList "Ability", SrcDir$, DEST$
- ELSEIF ftype% = SYSTEMFILES THEN
- AddSectionFilesToCopyList "System", SrcDir$,WinDir$
- AddSectionFilesToCopyList "Borland", SrcDir$,WinDir$
- ELSEIF ftype% = MANAGERFILES THEN
- AddSectionFilesToCopyList "Ability Manager", SrcDir$, DEST$
- ELSEIF ftype% = WRITEFILES THEN
- AddSectionFilesToCopyList "Ability Write", SrcDir$, DEST$
- IF WriteExamples% = 1 THEN
- AddSectionFilesToCopyList "Ability Write Examples", SrcDir$, DEST$+"\DOCS"
- ENDIF
- IF WriteW4W% = 1 THEN
- AddSectionFilesToCopyList "Ability Write W4W", SrcDir$, DEST$
- ENDIF
- ELSEIF ftype% = DBFILES THEN
- AddSectionFilesToCopyList "Ability Database", SrcDir$, DEST$
- IF DBExamples% = 1 THEN
- AddSectionFilesToCopyList "Ability Database Examples", SrcDir$, DEST$
- ENDIF
- IF DBW4W% = 1 THEN
- AddSectionFilesToCopyList "Ability Database W4W", SrcDir$, DEST$
- ENDIF
- ELSEIF ftype% = SPREADFILES THEN
- AddSectionFilesToCopyList "Ability Spreadsheet", SrcDir$, DEST$
- IF SpreadExamples% = 1 THEN
- AddSectionFilesToCopyList "Ability Spreadsheet Examples", SrcDir$, DEST$ + "\SHEETS"
- ENDIF
- IF SpreadW4W% = 1 THEN
- AddSectionFilesToCopyList "Ability Spreadsheet W4W", SrcDir$, DEST$
- ENDIF
- ELSEIF ftype% = FORMSFILES THEN
- AddSectionFilesToCopyList "Ability Forms", SrcDir$, DEST$
- IF FormsExamples% = 1 THEN
- AddSectionFilesToCopyList "Ability Forms Examples", SrcDir$, DEST$ + "\FORMS"
- ENDIF
- ELSEIF ftype% = COMMSFILES THEN
- AddSectionFilesToCopyList "Ability Communication", SrcDir$, DEST$
- ELSEIF ftype% = TOOLSFILES THEN
- AddSectionFilesToCopyList "Ability W4W", SrcDir$, DEST$
- IF ToolsSpelling% = 1 THEN
- AddSectionFilesToCopyList Language$, SrcDir$, DEST$
- ENDIF
- IF ToolsCards% = 1 THEN
- AddSectionFilesToCopyList "Cards", SrcDir$, DEST$ + "\QTUTOR"
- ENDIF
- END IF
- SrcDir$ = ""
- WinDir$ = ""
- END_ADDOPTFILES:
- END SUB
-
-
- '**
- '** Purpose:
- '** Adds the specified option files to the copy list.
- '** Arguments:
- '** ftype% - type of files to add, one of the following:
- '** MANAGERFILES, WRITEFILES, DBFILES
- '** Returns:
- '** none.
- '*************************************************************************
- SUB AddOptFilesToCopyList1 (ftype%) STATIC
- IF GetListItem(CHECKSTATES1$, ftype%) = "ON" THEN
- SrcDir$ = GetSymbolValue("STF_SRCDIR")
- WinDir$ = GetWindowsDir()
- IF CURRENTMODULE% = MANAGERFILES THEN
- IF ftype% = EXAMPLESFILES THEN
- AddSectionFilesToCopyList "Ability", SrcDir$, DEST$
- ELSEIF ftype% = FILTERSFILES THEN
- AddSectionFilesToCopyList "Ability Manager", SrcDir$, DEST$
- END IF
- ELSEIF CURRENTMODULE% = WRITEFILES THEN
- IF ftype% = EXAMPLESFILES THEN
- AddSectionFilesToCopyList "Ability Write Examples", SrcDir$, DEST$ + "\DOCS"
- ELSEIF ftype% = FILTERSFILES THEN
- AddSectionFilesToCopyList "Ability Write W4W", SrcDir$, DEST$
- END IF
- ELSEIF CURRENTMODULE% = DBFILES THEN
- IF ftype% = EXAMPLESFILES THEN
- AddSectionFilesToCopyList "Ability Database Examples", SrcDir$, DEST$
- ELSEIF ftype% = FILTERSFILES THEN
- AddSectionFilesToCopyList "Ability Database W4W", SrcDir$, DEST$
- END IF
- ELSEIF CURRENTMODULE% = SPREADFILES THEN
- IF ftype% = EXAMPLESFILES THEN
- AddSectionFilesToCopyList "Ability Spreadsheet Examples", SrcDir$, DEST$ + "\SHEETS"
- ELSEIF ftype% = FILTERSFILES THEN
- AddSectionFilesToCopyList "Ability Spreadsheet W4W", SrcDir$, DEST$
- END IF
- ELSEIF CURRENTMODULE% = FORMSFILES THEN
- IF ftype% = EXAMPLESFILES THEN
- AddSectionFilesToCopyList "Ability Forms Examples", SrcDir$, DEST$+"\FORMS"
- END IF
- ELSEIF CURRENTMODULE% = COMMSFILES THEN
- IF ftype% = EXAMPLESFILES THEN
- AddSectionFilesToCopyList "Ability Spreadsheet Examples", SrcDir$, DEST$
- ELSEIF ftype% = FILTERSFILES THEN
- AddSectionFilesToCopyList "Ability Spreadsheet W4W", SrcDir$, DEST$
- END IF
- ELSEIF CURRENTMODULE% = TOOLSFILES THEN
- AddSectionFilesToCopyList "Ability W4W", SrcDir$, DEST$
- IF ftype% = EXAMPLESFILES THEN
- AddSectionFilesToCopyList "Cards", SrcDir$, DEST$ + "\QTUTOR"
- ELSEIF ftype% = FILTERSFILES THEN
- AddSectionFilesToCopyList Language$, SrcDir$, DEST$
- END IF
- END IF
- SrcDir$ = ""
- WinDir$ = ""
- END IF
- END SUB
-
-
- '**
- '** Purpose:
- '** Recalculates disk space for the given option files and sets
- '** the status info symbol "StatusItemsText".
- '** Arguments:
- '** ftype% - type of files to add, one of the following:
- '** MANAGERFILES, WRITEFILES, DBFILES
- '** Returns:
- '** none.
- '*************************************************************************
- SUB RecalcOptFiles (ftype%) STATIC
- CursorSave% = ShowWaitCursor()
- ClearCopyList
- AddOptFilesToCopyList ftype%
- fExtra% = 0
- IF ftype% = SYSTEMFILES THEN
- ListSym$ = SYSTEMNEEDS$
- ''Add extra cost to Windows drive for ini/progman, etc.
- ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
- ReplaceListItem EXTRACOSTS$, ndrive%, "10240"
- fExtra% = 1
- ELSEIF ftype% = APPFILES THEN
- ListSym$ = APPNEEDS$
- ELSEIF ftype% = MANAGERFILES THEN
- ListSym$ = MANAGERNEEDS$
- ELSEIF ftype% = WRITEFILES THEN
- ListSym$ = WRITENEEDS$
- ELSEIF ftype% = DBFILES THEN
- ListSym$ = DBNEEDS$
- ELSEIF ftype% = SPREADFILES THEN
- ListSym$ = SPREADNEEDS$
- ELSEIF ftype% = FORMSFILES THEN
- ListSym$ = FORMSNEEDS$
- ELSEIF ftype% = COMMSFILES THEN
- ListSym$ = COMMSNEEDS$
- ELSEIF ftype% = TOOLSFILES THEN
- ListSym$ = TOOLSNEEDS$
- ELSEIF ftype% = ABILITYFILES THEN
- ListSym$ = ABILITYNEEDS$
- ELSEIF ftype% = CARDSFILES THEN
- ListSym$ = CARDSNEEDS$
- ELSEIF ftype% = BORLANDFILES THEN
- ListSym$ = BORLANDNEEDS$
- ELSEIF ftype% = W4WFILES THEN
- ListSym$ = W4WNEEDS$
- END IF
- StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
- IF ftype% = APPFILES THEN
- GOTO END_RECALCOPTFILE
- ENDIF
- IF ftype% = SYSTEMFILES THEN
- GOTO END_RECALCOPTFILE1
- ENDIF
- cost& = 0
- FOR i% = 1 TO 26 STEP 1
- cost& = cost& + VAL(GetListItem(ListSym$, i%))
- NEXT i%
- ReplaceListItem STATUSTEXT$, ftype%, STR$(cost& / 1024) + " K"
- IF StillNeed& > 0 THEN
- ReplaceListItem BIGLIST$, ftype%, "YES"
- ELSE
- ReplaceListItem BIGLIST$, ftype%, ""
- END IF
- END_RECALCOPTFILE1:
- IF fExtra% THEN
- ReplaceListItem EXTRACOSTS$, ndrive%, "0"
- END IF
- END_RECALCOPTFILE:
- RestoreCursor CursorSave%
- ListSym$ = ""
- END SUB
-
- '**
- '** Purpose:
- '** Recalculates disk space for the given option files and sets
- '** the status info symbol "StatusItemsText".
- '** Arguments:
- '** ftype% - type of files to add, one of the following:
- '** MANAGERFILES, WRITEFILES, DBFILES
- '** Returns:
- '** none.
- '*************************************************************************
- SUB RecalcOptFiles1 (ftype%) STATIC
- CursorSave% = ShowWaitCursor()
- ClearCopyList
- AddOptFilesToCopyList1 ftype%
- fExtra% = 0
- IF ftype% = SYSTEMFILES THEN
- ListSym$ = SYSTEMNEEDS$
- ''Add extra cost to Windows drive for ini/progman, etc.
- ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
- ReplaceListItem EXTRACOSTS$, ndrive%, "10240"
- fExtra% = 1
- ELSEIF ftype% = EXAMPLESFILES THEN
- ListSym$ = EXAMPLESNEEDS$
- ELSEIF ftype% = FILTERSFILES THEN
- ListSym$ = FILTERSNEEDS$
- END IF
- StillNeed& = GetCopyListCost(EXTRACOSTS1$, ListSym$, "")
- cost& = 0
- FOR i% = 1 TO 26 STEP 1
- cost& = cost& + VAL(GetListItem(ListSym$, i%))
- NEXT i%
- ReplaceListItem STATUSTEXT1$, ftype%, STR$(cost& / 1024) + " K"
- IF StillNeed& > 0 THEN
- ReplaceListItem BIGLIST1$, ftype%, "YES"
- ELSE
- ReplaceListItem BIGLIST1$, ftype%, ""
- END IF
- IF fExtra% THEN
- ReplaceListItem EXTRACOSTS1$, ndrive%, "0"
- END IF
- RestoreCursor CursorSave%
- ListSym$ = ""
- END SUB
-
-
- '**
- '** Purpose:
- '** Recalculates disk space and sets option status info according
- '** to the current destination path.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB RecalcPath(ftype%) STATIC
- CursorSave% = ShowWaitCursor()
- IF ftype%=0 THEN
- RecalcOptFiles MANAGERFILES
- RecalcOptFiles WRITEFILES
- RecalcOptFiles DBFILES
- RecalcOptFiles SPREADFILES
- RecalcOptFiles FORMSFILES
- RecalcOptFiles COMMSFILES
- RecalcOptFiles TOOLSFILES
- RecalcOptFiles APPFILES
- RecalcOptFiles SYSTEMFILES
- ELSE
- RecalcOptFiles1 EXAMPLESFILES
- RecalcOptFiles1 FILTERSFILES
- ENDIF
- RestoreCursor CursorSave%
- END SUB
-
- '**
- '** Purpose:
- '** Sets drive status info according to latest disk space calcs.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB SetDriveStatus STATIC
- drive$ = MID$(DEST$, 1, 1)
- ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
- cost& = 0
- cost& = cost& + VAL(GetListItem(SYSTEMNEEDS$, ndrive%))
- cost& = cost& + VAL(GetListItem(APPNEEDS$, ndrive%))
- cost& = cost& + VAL(GetListItem(MANAGERNEEDS$, ndrive%))
- cost& = cost& + VAL(GetListItem(WRITENEEDS$, ndrive%))
- cost& = cost& + VAL(GetListItem(DBNEEDS$, ndrive%))
- cost& = cost& + VAL(GetListItem(SPREADNEEDS$, ndrive%))
- cost& = cost& + VAL(GetListItem(FORMSNEEDS$, ndrive%))
- cost& = cost& + VAL(GetListItem(COMMSNEEDS$, ndrive%))
- cost& = cost& + VAL(GetListItem(TOOLSNEEDS$, ndrive%))
- free& = GetFreeSpaceForDrive(drive$)
- ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
- ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
- ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
- IF drive$ = WINDRIVE$ THEN
- ReplaceListItem DRIVETEXT$, 4, ""
- ReplaceListItem DRIVETEXT$, 5, ""
- ReplaceListItem DRIVETEXT$, 6, ""
- ELSE
- ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
- cost& = 0
- cost& = cost& + VAL(GetListItem(SYSTEMNEEDS$, ndrive%))
- cost& = cost& + VAL(GetListItem(APPNEEDS$, ndrive%))
- cost& = cost& + VAL(GetListItem(MANAGERNEEDS$, ndrive%))
- cost& = cost& + VAL(GetListItem(WRITENEEDS$, ndrive%))
- cost& = cost& + VAL(GetListItem(DBNEEDS$, ndrive%))
- cost& = cost& + VAL(GetListItem(SPREADNEEDS$, ndrive%))
- cost& = cost& + VAL(GetListItem(FORMSNEEDS$, ndrive%))
- cost& = cost& + VAL(GetListItem(COMMSNEEDS$, ndrive%))
- cost& = cost& + VAL(GetListItem(TOOLSNEEDS$, ndrive%))
- IF cost& = 0 THEN
- ReplaceListItem DRIVETEXT$, 4, ""
- ReplaceListItem DRIVETEXT$, 5, ""
- ReplaceListItem DRIVETEXT$, 6, ""
- ELSE
- free& = GetFreeSpaceForDrive(WINDRIVE$)
- ReplaceListItem DRIVETEXT$, 4, WINDRIVE$ + ":"
- ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K"
- ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K"
- END IF
- END IF
- END SUB
-
-
- '**
- '** Purpose:
- '** Sets drive status info according to latest disk space calcs.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB SetDriveStatus1 STATIC
- drive$ = MID$(DEST$, 1, 1)
- ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
- cost& = 0
- cost& = cost& + VAL(GetListItem(EXAMPLESNEEDS$, ndrive%))
- cost& = cost& + VAL(GetListItem(FILTERSNEEDS$, ndrive%))
- free& = GetFreeSpaceForDrive(drive$)
- ReplaceListItem DRIVETEXT1$, 1, drive$ + ":"
- ReplaceListItem DRIVETEXT1$, 2, STR$(cost& / 1024) + " K"
- ReplaceListItem DRIVETEXT1$, 3, STR$(free& / 1024) + " K"
- IF drive$ = WINDRIVE$ THEN
- ReplaceListItem DRIVETEXT1$, 4, ""
- ReplaceListItem DRIVETEXT1$, 5, ""
- ReplaceListItem DRIVETEXT1$, 6, ""
- ELSE
- ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
- cost& = 0
- cost& = cost& + VAL(GetListItem(EXAMPLESNEEDS$, ndrive%))
- cost& = cost& + VAL(GetListItem(FILTERSNEEDS$, ndrive%))
- IF cost& = 0 THEN
- ReplaceListItem DRIVETEXT1$, 4, ""
- ReplaceListItem DRIVETEXT1$, 5, ""
- ReplaceListItem DRIVETEXT1$, 6, ""
- ELSE
- free& = GetFreeSpaceForDrive(WINDRIVE$)
- ReplaceListItem DRIVETEXT1$, 4, WINDRIVE$ + ":"
- ReplaceListItem DRIVETEXT1$, 5, STR$(cost& / 1024) + " K"
- ReplaceListItem DRIVETEXT1$, 6, STR$(free& / 1024) + " K"
- END IF
- END IF
- END SUB
-
-
-
-
-
- '**
- '** Purpose:
- '** Registration of OLE2.REG.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB RegisterOle2 STATIC
- j% = ShowWaitCursor()
- sz$ = UIStartDlg(CUIDLL$, 8000, FMODELESSDLGPROC$, APPHELP, HELPPROC$)
- RegFile$ = MakePath(DEST$,"OLE2.INI")
- FOR i% = 1 TO 251 STEP 1
- Value$ = GetIniKeyString (RegFile$,"OLE2REG",STR$(i%))
- AddRegData Value$
- NEXT
- '**
- '** Registration of Ability Private Classes
- '**
- '** Spreadsheet
- RegFile$ = MakePath(DEST$,"abspread.exe")
- SpreadCLSID$ = "CLSID\{72BFC160-8056-101B-AE51-04021C007002}"
- AddRegData "ASHEET,Ability Spreadsheet or Chart"
- AddRegData "ASHEET\CLSID,{72BFC160-8056-101B-AE51-04021C007002}"
- AddRegData "ASHEET\Insertable,"
- AddRegData "CLSID\{72BFC160-8056-101B-AE51-04021C007002}\ProgID,ASHEET"
- AddRegData "ASHEET\protocol\StdFileEditing\server," +RegFile$
- AddRegData "ASHEET\protocol\StdFileEditing\verb\0,&Edit"
- AddRegData "ASHEET\protocol\StdFileEditing\verb\1,&Open"
- AddRegData SpreadCLSID$ + ",Ability Spreadsheet or Chart"
- AddRegData SpreadCLSID$ + "\Insertable,"
- AddRegData SpreadCLSID$ + "\MiscStatus,0"
- AddRegData SpreadCLSID$ + "\DefaultIcon," + RegFile$+",0"
- AddRegData SpreadCLSID$ + "\AuxUserType\2,Ability Spreadsheet or Chart"
- AddRegData SpreadCLSID$ + "\AuxUserType\3,Ability Spreadsheet or Chart"
- AddRegData SpreadCLSID$ + "\Verb\0,&Play,0,2"
- AddRegData SpreadCLSID$ + "\Verb\1,&Open,0,2"
- AddRegData SpreadCLSID$ + "\LocalServer," +RegFile$
- AddRegData SpreadCLSID$ + "\InprocHandler,ole2.dll"
- AddRegData SpreadCLSID$ + "\DataFormats\GetSet\0,3,1,32,1"
- AddRegData ".aws,ASHEET"
- AddRegData ".awc,ASHEET"
- AddRegData ".xss,ASHEET"
- '** Write
- RegFile$ = MakePath(DEST$,"abwrite.exe")
- AddRegData "AWRITE,Ability Write"
- AddRegData "AWRITE\CLSID,{9128CA20-8056-101B-AE51-04021C007002}"
- AddRegData "AWRITE\Insertable,"
- AddRegData "CLSID\{9128CA20-8056-101B-AE51-04021C007002}\ProgID,AWRITE"
- AddRegData "AWRITE\protocol\StdFileEditing\server," + RegFile$
- AddRegData "AWRITE\protocol\StdFileEditing\verb\0,&Edit"
- AddRegData "AWRITE\protocol\StdFileEditing\verb\1,&Open"
- AddRegData "CLSID\{9128CA20-8056-101B-AE51-04021C007002},Ability Write"
- AddRegData "CLSID\{9128CA20-8056-101B-AE51-04021C007002}\Insertable,"
- AddRegData "CLSID\{9128CA20-8056-101B-AE51-04021C007002}\MiscStatus,0"
- AddRegData "CLSID\{9128CA20-8056-101B-AE51-04021C007002}\DefaultIcon," + RegFile$+",0"
- AddRegData "CLSID\{9128CA20-8056-101B-AE51-04021C007002}\AuxUserType\2,Ability Write"
- AddRegData "CLSID\{9128CA20-8056-101B-AE51-04021C007002}\AuxUserType\3,Ability Write"
- AddRegData "CLSID\{9128CA20-8056-101B-AE51-04021C007002}\Verb\0,&Play,0,2"
- AddRegData "CLSID\{9128CA20-8056-101B-AE51-04021C007002}\Verb\1,&Open,0,2"
- AddRegData "CLSID\{9128CA20-8056-101B-AE51-04021C007002}\LocalServer," + RegFile$
- AddRegData "CLSID\{9128CA20-8056-101B-AE51-04021C007002}\InprocHandler,ole2.dll"
- AddRegData "CLSID\{9128CA20-8056-101B-AE51-04021C007002}\DataFormats\GetSet\0,3,1,32,1"
- AddRegData ".AWW,AWRITE"
- AddRegData ".xtx,AWRITE"
- '** FormMaker
- RegFile$ = MakePath(DEST$,"abforms.exe")
- AddRegData "AFORMS,Ability Forms"
- AddRegData "AFORMS\CLSID,{965540A0-8056-101B-AE51-04021C007002}"
- AddRegData "AFORMS\Insertable,"
- AddRegData "CLSID\{965540A0-8056-101B-AE51-04021C007002}\ProgID,AFORMS"
- AddRegData "AFORMS\protocol\StdFileEditing\server,"+RegFile$
- AddRegData "AFORMS\protocol\StdFileEditing\verb\0,&Edit"
- AddRegData "AFORMS\protocol\StdFileEditing\verb\1,&Open"
- AddRegData "CLSID\{965540A0-8056-101B-AE51-04021C007002},Ability Forms"
- AddRegData "CLSID\{965540A0-8056-101B-AE51-04021C007002}\Insertable,"
- AddRegData "CLSID\{965540A0-8056-101B-AE51-04021C007002}\MiscStatus,0"
- AddRegData "CLSID\{965540A0-8056-101B-AE51-04021C007002}\DefaultIcon,"+RegFile$+",0"
- AddRegData "CLSID\{965540A0-8056-101B-AE51-04021C007002}\AuxUserType\2,Ability Forms"
- AddRegData "CLSID\{965540A0-8056-101B-AE51-04021C007002}\AuxUserType\3,Ability Forms"
- AddRegData "CLSID\{965540A0-8056-101B-AE51-04021C007002}\Verb\0,&Play,0,2"
- AddRegData "CLSID\{965540A0-8056-101B-AE51-04021C007002}\Verb\1,&Open,0,2"
- AddRegData "CLSID\{965540A0-8056-101B-AE51-04021C007002}\LocalServer,"+RegFile$
- AddRegData "CLSID\{965540A0-8056-101B-AE51-04021C007002}\InprocHandler,ole2.dll"
- AddRegData "CLSID\{965540A0-8056-101B-AE51-04021C007002}\DataFormats\GetSet\0,3,1,32,1"
- AddRegData ".awf,AFORMS"
- AddRegData ".frm,AFORMS"
- '** Draw
- RegFile$ = MakePath(DEST$,"abdraw.exe")
- AddRegData "ADRAW,Ability Draw"
- AddRegData "ADRAW\CLSID,{9B70EE40-8056-101B-AE51-04021C007002}"
- AddRegData "ADRAW\Insertable,"
- AddRegData "CLSID\{9B70EE40-8056-101B-AE51-04021C007002}\ProgID,ADRAW"
- AddRegData "ADRAW\protocol\StdFileEditing\server,"+RegFile$
- AddRegData "ADRAW\protocol\StdFileEditing\verb\0,&Edit"
- AddRegData "ADRAW\protocol\StdFileEditing\verb\1,&Open"
- AddRegData "CLSID\{9B70EE40-8056-101B-AE51-04021C007002},Ability Draw"
- AddRegData "CLSID\{9B70EE40-8056-101B-AE51-04021C007002}\Insertable,"
- AddRegData "CLSID\{9B70EE40-8056-101B-AE51-04021C007002}\MiscStatus,0"
- AddRegData "CLSID\{9B70EE40-8056-101B-AE51-04021C007002}\DefaultIcon,"+RegFile$+",0"
- AddRegData "CLSID\{9B70EE40-8056-101B-AE51-04021C007002}\AuxUserType\2,Ability Draw"
- AddRegData "CLSID\{9B70EE40-8056-101B-AE51-04021C007002}\AuxUserType\3,Ability Draw"
- AddRegData "CLSID\{9B70EE40-8056-101B-AE51-04021C007002}\Verb\0,&Play,0,2"
- AddRegData "CLSID\{9B70EE40-8056-101B-AE51-04021C007002}\Verb\1,&Open,0,2"
- AddRegData "CLSID\{9B70EE40-8056-101B-AE51-04021C007002}\LocalServer,"+RegFile$
- AddRegData "CLSID\{9B70EE40-8056-101B-AE51-04021C007002}\InprocHandler,ole2.dll"
- AddRegData "CLSID\{9B70EE40-8056-101B-AE51-04021C007002}\DataFormats\GetSet\0,3,1,32,1"
- AddRegData ".AWG,ADRAW"
- AddRegData ".BMP,ADRAW"
- AddRegData ".WMF,ADRAW"
- AddRegData ".PCX,ADRAW"
- AddRegData ".TIF,ADRAW"
- AddRegData ".GIF,ADRAW"
- AddRegData ".TGA,ADRAW"
- '** DataBase
- RegFile$ = MakePath(DEST$,"abdata.exe")
- AddRegData "ADBASE,Ability Database"
- AddRegData "ADBASE\CLSID,{9F90D6C0-8056-101B-AE51-04021C007002}"
- AddRegData "CLSID\{9F90D6C0-8056-101B-AE51-04021C007002}\ProgID,ADBASE"
- AddRegData "ADBASE\protocol\StdFileEditing\server,"+RegFile$
- AddRegData "ADBASE\protocol\StdFileEditing\verb\0,&Edit"
- AddRegData "ADBASE\protocol\StdFileEditing\verb\1,&Open"
- AddRegData "CLSID\{9F90D6C0-8056-101B-AE51-04021C007002},Ability Database"
- AddRegData "CLSID\{9F90D6C0-8056-101B-AE51-04021C007002}\LocalServer,"+RegFile$
- AddRegData "CLSID\{9F90D6C0-8056-101B-AE51-04021C007002}\InprocHandler,ole2.dll"
- AddRegData "CLSID\{9B70EE40-8056-101B-AE51-04021C007002}\DataFormats\GetSet\0,3,1,32,1"
- AddRegData ".awd,ADBASE"
- AddRegData ".awq,ADBASE"
- '** IDataBaseObject Interface - maps IID into proxy/stub CLSID
- AddRegData "Interface\{A4D5B740-8056-101B-AE51-04021C007002},IDataBaseObject"
- AddRegData "Interface\{A4D5B740-8056-101B-AE51-04021C007002}\NumMethods,16"
- AddRegData "Interface\{A4D5B740-8056-101B-AE51-04021C007002}\ProxyStubClsid,{B1BBB7C0-8056-101B-AE51-04021C007002}"
- '** IDBServer Interface - maps IID into proxy/stub CLSID
- AddRegData "Interface\{A95A5500-8056-101B-AE51-04021C007002},IDBServer"
- AddRegData "Interface\{A95A5500-8056-101B-AE51-04021C007002}\NumMethods,12"
- AddRegData "Interface\{A95A5500-8056-101B-AE51-04021C007002}\ProxyStubClsid,{B1BBB7C0-8056-101B-AE51-04021C007002}"
- '** IHotLink Interface - maps IID into proxy/stub CLSID
- AddRegData "Interface\{AE221640-8056-101B-AE51-04021C007002},IHotLink"
- AddRegData "Interface\{AE221640-8056-101B-AE51-04021C007002}\NumMethods,5"
- AddRegData "Interface\{AE221640-8056-101B-AE51-04021C007002}\ProxyStubClsid,{B1BBB7C0-8056-101B-AE51-04021C007002}"
- '** DataBase Proxy/Stub DLL CLSID
- RegFile$ = MakePath(DEST$,"dbprxstb.dll")
- AddRegData "CLSID\{B1BBB7C0-8056-101B-AE51-04021C007002},Ability Database Proxy Stub"
- AddRegData "CLSID\{B1BBB7C0-8056-101B-AE51-04021C007002}\InprocServer," +RegFile$
- '** Data Transfer Object
- RegFile$ = MakePath(DEST$,"datatran.dll")
- AddRegData "DataTransferObject,Data Transfer Object"
- AddRegData "DataTransferObject\CLSID,BC5F6960-8056-101B-AE51-04021C007002}"
- AddRegData "CLSID\{BC5F6960-8056-101B-AE51-04021C007002},Data Transfer Object"
- AddRegData "CLSID\{BC5F6960-8056-101B-AE51-04021C007002}\InprocServer," +RegFile$
- '** ProgIdMoniker
- AddRegData "CLSID\{322A8DE0-902F-101B-AE51-04021C007002},ProgIdMoniker"
- AddRegData "CLSID\{322A8DE0-902F-101B-AE51-04021C007002}\InProcServer,prgidmon.dll"
- '** DrawGroup
- RegFile$ = MakePath(DEST$,"drawdll.dll")
- AddRegData "Drawgroup,Draw Shape Group Objects"
- AddRegData "Drawgroup\CLSID,{3EE75B80-902F-101B-AE51-04021C007002}"
- AddRegData "CLSID\{3EE75B80-902F-101B-AE51-04021C007002},Draw Objects"
- AddRegData "CLSID\{3EE75B80-902F-101B-AE51-04021C007002}\InprocServer,"+RegFile$
- UIPop 1
- RestoreCursor j%
- END SUB
-
-
- '**
- '** Purpose:
- '** Creates a Registration Database key that
- '** is a subkey of HKEYS_CLASSES_ROOT and
- '** associates a value with the key.
- '** Arguments:
- '** RegData$ = Key$,Value$.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB AddRegData (RegData$) STATIC
- iField% = LEN(RegData$)
- FOR i% = 1 TO iField% STEP 1
- IF MID$(RegData$, i%, 1) = "," THEN
- Key$ = MID$(RegData$, 1, i%-1)
- Value$ = MID$(RegData$, i%+1, iField% - i% )
- CreateRegKeyValue Key$,Value$
- GOTO END_ADDREGDATA
- END IF
- NEXT
- END_ADDREGDATA:
- END SUB
-
-
- ''******************************************************************************
- '' INIT Manager CustInst list symbols
- ''******************************************************************************
- SUB InitCustInstall STATIC
- FOR i% = 1 TO 2 STEP 1
- ReplaceListItem BIGLIST1$ ,i%, ""
- ReplaceListItem STATUSTEXT1$,i%, ""
- NEXT i%
- FOR i% = 1 TO 7 STEP 1
- ReplaceListItem DRIVETEXT1$ ,i%, ""
- NEXT i%
- ReplaceListItem DRIVETEXT1$, 7, DEST$
- FOR i% = 1 TO 26 STEP 1
- ReplaceListItem EXTRACOSTS1$,i%, "0"
- NEXT i%
- RecalcPath(1)
- SetDriveStatus1
- END SUB
-
- SUB CheckOptFiles (ftype%) STATIC
- IF CURRENTMODULE% = WRITEFILES THEN
- IF ftype% = EXAMPLESFILES THEN
- IF WriteExamples% = 1 THEN
- WriteExamples% = 0
- ELSE
- WriteExamples% = 1
- ENDIF
- ELSEIF ftype% = FILTERSFILES THEN
- IF WriteW4W% = 1 THEN
- WriteW4W% = 0
- ELSE
- WriteW4W% = 1
- ENDIF
- ENDIF
- ELSEIF CURRENTMODULE% = DBFILES THEN
- IF ftype% = EXAMPLESFILES THEN
- IF DBExamples% = 1 THEN
- DBExamples% = 0
- ELSE
- DBExamples% = 1
- ENDIF
- ELSEIF ftype% = FILTERSFILES THEN
- IF DBW4W% = 1 THEN
- DBW4W% = 0
- ELSE
- DBW4W% = 1
- ENDIF
- ENDIF
- ELSEIF CURRENTMODULE% = SPREADFILES THEN
- IF ftype% = EXAMPLESFILES THEN
- IF SpreadExamples% = 1 THEN
- SpreadExamples% = 0
- ELSE
- SpreadExamples% = 1
- ENDIF
- ELSEIF ftype% = FILTERSFILES THEN
- IF SpreadW4W% = 1 THEN
- SpreadW4W% = 0
- ELSE
- SpreadW4W% = 1
- ENDIF
- ENDIF
- ELSEIF CURRENTMODULE% = FORMSFILES THEN
- IF ftype% = EXAMPLESFILES THEN
- IF FormsExamples% = 1 THEN
- FormsExamples% = 0
- ELSE
- FormsExamples% = 1
- ENDIF
- ENDIF
- ELSEIF CURRENTMODULE% = TOOLSFILES THEN
- IF ftype% = EXAMPLESFILES THEN
- IF ToolsCards% = 1 THEN
- ToolsCards% = 0
- ELSE
- ToolsCards% = 1
- ENDIF
- ELSEIF ftype% = FILTERSFILES THEN
- IF ToolsSpelling% = 1 THEN
- ToolsSpelling% = 0
- ELSE
- ToolsSpelling% = 1
- ENDIF
- ENDIF
- ENDIF
- END SUB
-
-
- SUB GetUserInfo STATIC
- SetSymbolValue NAME_STR$, szUserName$
- SetSymbolValue ORG_STR$, szCompany$
- GET_USER_INFO_LOOP:
- sz$ = UIStartDlg (CUIDLL$, INFORMATION, "FNameOrgDlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO GET_USER_INFO_LOOP
- ELSEIF sz$ = "OK" THEN
- szUserName$ = GetSymbolValue (NAME_STR$)
- szCompany$ = GetSymbolValue (ORG_STR$)
- ENDIF
- szUserName$ = GetSymbolValue (NAME_STR$)
- szCompany$ = GetSymbolValue (ORG_STR$)
- i% = ConfirmUserInfo()
- IF i% = 0 THEN
- GOTO GET_USER_INFO_LOOP
- ENDIF
- UIPop 1
- END SUB
-
-
- FUNCTION ConfirmUserInfo() STATIC AS INTEGER
- ReplaceListItem CONFIRMTEXTLIST$,1,szUserName$
- ReplaceListItem CONFIRMTEXTLIST$,2,szCompany$
- CONFIRM:
- sz$ = UIStartDlg(CUIDLL$, CONFIRM, "FConfirmDlgProc", 0,"")
- IF sz$ = "BACK" THEN
- ConfirmUserInfo% = 0
- ELSEIF sz$ = "CONTINUE" THEN
- ConfirmUserInfo% = 1
- ELSE
- GOTO CONFIRM
- ENDIF
- UIPop 1
- END FUNCTION
-
-
- SUB ShowProductID() STATIC
- PRODUCTID:
- sz$ = UIStartDlg(CUIDLL$, PRODUCTIDDLG, "ProductDlgProc", 0,"")
- IF sz$ = "CONTINUE" THEN
- UIPop 1
- szProductID$ = GetSymbolValue("ProductTextOut")
- ELSE
- GOTO PRODUCTID
- ENDIF
- END SUB
-
- SUB AskEXIT() STATIC
- ASKEXIT1:
- sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
- IF sz$ = "EXIT" THEN
- UIPopAll
- ERROR STFQUIT
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO ASKEXIT1
- ELSE
- UIPop 1
- END IF
- END SUB
-
-
- SUB Welcome() STATIC
- WELCOME_LOOP:
- sz$ = UIStartDlg(CUIDLL$, WELCOMEDLG, "FInfoDlgProc", APPHELP, HELPPROC$)
- IF sz$ = "CONTINUE" THEN
- UIPop 1
- ELSE
- AskEXIT
- GOTO WELCOME_LOOP
- END IF
- END SUB
-
-
- SUB Toobig() STATIC
- TOOBIG_LOOP:
- sz$ = UIStartDlg(CUIDLL$, TOOBIGDLG, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO TOOBIG_LOOP
- END IF
- UIPop 1
- END SUB
-
- SUB BadPath() STATIC
- BADPATH_LOOP:
- sz$ = UIStartDlg(CUIDLL$, BADPATHDLG, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO BADPATH_LOOP
- END IF
- UIPop 1
- END SUB
-
- SUB GetPath() STATIC
- GETPATH_LOOP:
- SetSymbolValue "EditTextIn", DEST$
- SetSymbolValue "EditFocus", "END"
- GETPATHL1:
- sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
- DEST$ = GetSymbolValue("EditTextOut")
- IF sz$ = "CONTINUE" THEN
- IF IsDirWritable(DEST$) = 0 THEN
- BadPath
- GOTO GETPATHL1
- END IF
- UIPop 1
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO GETPATHL1
- ELSEIF sz$ = "BACK" THEN
- GOTO GETPATHL1
- ELSE
- AskEXIT
- GOTO GETPATH_LOOP
- END IF
- END SUB
-
-
- SUB RestartDlg() STATIC
- RESTART_DLG:
- sz$ = UIStartDlg(CUIDLL$, 9000, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO RESTART_DLG
- END IF
- UIPop 1
- END SUB
-
- SUB RestartSystem() STATIC
- RE_BACK:
- ' Check if any files were locked during install. If the RestartList
- ' is not empty, ExitExecRestart() will restart Windows, cleanup setup
- ' files, and copy over locked files before Windows restarts.
-
- j% = RestartListEmpty()
-
- IF j% = 0 THEN
- ' ExitExecRestart() only returns if applications refuse to be shutdown.
- ' Win32s is installed but will not operate until Windows is restarted
- ' and the Win32s VxD is loaded.
- RestartDlg
- j% = ExitExecRestart()
-
- ELSE
- IF Restart$ = "YES" THEN
- ' If the RestartList list is empty, it is necessary to restart windows
- ' directly. The MSSETUP program creates _MSRSTRT.EXE and _MSSETUP.BAT
- ' in the restart directory. This program should be exec'd to handle
- ' proper MSSETUP cleanup (temp files) and restart Windows.
-
- RestartDlg
- j% = ExitWindowsExec( GetWindowsDir() + "_MSRSTRT.EXE", "_MSSETUP.BAT" )
- ENDIF
- ENDIF
-
- IF j% = 0 THEN
- GOTO RE_BACK
- ENDIF
- END SUB
-
-
- FUNCTION GetOptionInstall() STATIC AS INTEGER
- BEGIN:
- sz$ = UIStartDlg(CUIDLL$, BEGIN, "FInfoDlgProc", APPHELP, HELPPROC$)
- IF sz$ = "CONTINUE" THEN
- ''Install only if it will fit.
- RecalcPath(0)
- FOR i% = 1 TO 7 STEP 1
- IF GetListItem(BIGLIST$, i%) <> "" THEN
- Toobig
- GOTO BEGIN
- END IF
- NEXT i%
- UIPop 1
- GetOptionInstall% = COMPLETESETUP
- ELSEIF sz$ = "BACK" THEN
- UIPop 1
- GetOptionInstall% = CUSTOMSETUP
- ELSEIF sz$ = "CANCEL" THEN
- ''Install only if it will fit.
- RecalcPath(0)
- FOR i% = 1 TO 7 STEP 1
- IF GetListItem(BIGLIST$, i%) <> "" THEN
- Toobig
- GOTO BEGIN
- END IF
- NEXT i%
- UIPop 1
- GetOptionInstall% = MINIMUMSETUP
- ELSE
- AskEXIT
- GOTO BEGIN
- END IF
- END FUNCTION
-
- SUB GetMinimumInstall() STATIC
- WriteExamples% = 0
- WriteW4W% = 0
- DBExamples% = 0
- DBW4W% = 0
- SpreadExamples% = 0
- SpreadW4W% = 0
- FormsExamples% = 0
- ToolsSpelling% = 0
- ToolsCards% = 0
- END SUB
-
- SUB GetCustomInstall() STATIC
-
- ReplaceListItem DRIVETEXT$, 7, DEST$
- CUSTPREINST:
- RecalcPath(0)
- SetDriveStatus
-
- CUSTINST:
- sz$ = UIStartDlg(CUIDLL$, CUSTINST, "FCustInstDlgProc", APPHELP, HELPPROC$)
- IF sz$ = "CONTINUE" THEN
- ''Install only if it will fit.
- FOR i% = 1 TO 7 STEP 1
- IF GetListItem(BIGLIST$, i%) <> "" THEN
- Toobig
- GOTO CUSTINST
- END IF
- NEXT i%
- UIPop 1
- ELSEIF sz$ = "PATH" THEN
- GetPath
- ReplaceListItem DRIVETEXT$ , 7, DEST$
- GOTO CUSTPREINST
- ELSEIF sz$ = "CHK1" THEN
- RecalcOptFiles MANAGERFILES
- SetDriveStatus
- GOTO CUSTINST
- ELSEIF sz$ = "CHK2" THEN
- RecalcOptFiles WRITEFILES
- SetDriveStatus
- GOTO CUSTINST
- ELSEIF sz$ = "CHK3" THEN
- RecalcOptFiles DBFILES
- SetDriveStatus
- GOTO CUSTINST
- ELSEIF sz$ = "CHK4" THEN
- RecalcOptFiles SPREADFILES
- SetDriveStatus
- GOTO CUSTINST
- ELSEIF sz$ = "CHK5" THEN
- RecalcOptFiles FORMSFILES
- SetDriveStatus
- GOTO CUSTINST
- ELSEIF sz$ = "CHK6" THEN
- RecalcOptFiles COMMSFILES
- SetDriveStatus
- GOTO CUSTINST
- ELSEIF sz$ = "CHK7" THEN
- RecalcOptFiles TOOLSFILES
- SetDriveStatus
- GOTO CUSTINST
- ELSEIF sz$ = "BTN1" THEN
- GetItemsInstall(MANAGERFILES)
- GOTO CUSTPREINST
- ELSEIF sz$ = "BTN2" THEN
- GetItemsInstall(WRITEFILES)
- GOTO CUSTPREINST
- ELSEIF sz$ = "BTN3" THEN
- GetItemsInstall(DBFILES)
- GOTO CUSTPREINST
- ELSEIF sz$ = "BTN4" THEN
- GetItemsInstall(SPREADFILES)
- GOTO CUSTPREINST
- ELSEIF sz$ = "BTN5" THEN
- GetItemsInstall(FORMSFILES)
- GOTO CUSTPREINST
- ELSEIF sz$ = "BTN6" THEN
- GetItemsInstall(COMMSFILES)
- GOTO CUSTPREINST
- ELSEIF sz$ = "BTN7" THEN
- GetItemsInstall(TOOLSFILES)
- GOTO CUSTPREINST
- ELSEIF sz$ = "REACTIVATE" THEN
- RecalcPath(0)
- SetDriveStatus
- GOTO CUSTINST
- ELSE
- AskEXIT
- GOTO CUSTINST
- END IF
-
- END SUB
-
-
- SUB GetItemsInstall(ftype%) STATIC
- IF ftype% = MANAGERFILES THEN
- CURRENTMODULE% = MANAGERFILES
- InitCustInstall
- ELSEIF ftype% = WRITEFILES THEN
- CURRENTMODULE% = WRITEFILES
- IF WriteExamples% = 1 THEN
- ReplaceListItem CHECKSTATES1$,EXAMPLESFILES,"ON"
- ELSE
- ReplaceListItem CHECKSTATES1$,EXAMPLESFILES,""
- END IF
- IF WriteW4W% = 1 THEN
- ReplaceListItem CHECKSTATES1$,FILTERSFILES,"ON"
- ELSE
- ReplaceListItem CHECKSTATES1$,FILTERSFILES,""
- END IF
- InitCustInstall
- ELSEIF ftype% = DBFILES THEN
- CURRENTMODULE% = DBFILES
- IF DBExamples% = 1 THEN
- ReplaceListItem CHECKSTATES1$,EXAMPLESFILES,"ON"
- ELSE
- ReplaceListItem CHECKSTATES1$,EXAMPLESFILES,""
- END IF
- IF DBW4W% = 1 THEN
- ReplaceListItem CHECKSTATES1$,FILTERSFILES,"ON"
- ELSE
- ReplaceListItem CHECKSTATES1$,FILTERSFILES,""
- END IF
- InitCustInstall
- ELSEIF ftype% = SPREADFILES THEN
- CURRENTMODULE% = SPREADFILES
- IF SpreadExamples% = 1 THEN
- ReplaceListItem CHECKSTATES1$,EXAMPLESFILES,"ON"
- ELSE
- ReplaceListItem CHECKSTATES1$,EXAMPLESFILES,""
- END IF
- IF SpreadW4W% = 1 THEN
- ReplaceListItem CHECKSTATES1$,FILTERSFILES,"ON"
- ELSE
- ReplaceListItem CHECKSTATES1$,FILTERSFILES,""
- END IF
- InitCustInstall
- ELSEIF ftype% = FORMSFILES THEN
- CURRENTMODULE% = FORMSFILES
- IF FormsExamples% = 1 THEN
- ReplaceListItem CHECKSTATES1$,EXAMPLESFILES,"ON"
- ELSE
- ReplaceListItem CHECKSTATES1$,EXAMPLESFILES,""
- END IF
- IF FormsExamples% = 1 THEN
- ReplaceListItem CHECKSTATES1$,FILTERSFILES,"ON"
- ELSE
- ReplaceListItem CHECKSTATES1$,FILTERSFILES,""
- END IF
- InitCustInstall
- ELSEIF ftype% = COMMSFILES THEN
- CURRENTMODULE% = COMMSFILES
- InitCustInstall
- ELSEIF ftype% = TOOLSFILES THEN
- CURRENTMODULE% = TOOLSFILES
- IF ToolsSpelling% = 1 THEN
- ReplaceListItem CHECKSTATES1$,EXAMPLESFILES,"ON"
- ELSE
- ReplaceListItem CHECKSTATES1$,EXAMPLESFILES,""
- END IF
- IF ToolsCards% = 1 THEN
- ReplaceListItem CHECKSTATES1$,FILTERSFILES,"ON"
- ELSE
- ReplaceListItem CHECKSTATES1$,FILTERSFILES,""
- END IF
- InitCustInstall
- END IF
-
- ShowItemsInstall
-
- END SUB
-
- SUB ShowItemsInstall() STATIC
-
- SETOPTIONSFILES:
- IF CURRENTMODULE% = TOOLSFILES THEN
- sz$ = UIStartDlg(CUIDLL$, TOOLSOPTIONS, "FCustInstDlgProc1", APPHELP, HELPPROC$)
- ELSE
- sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FCustInstDlgProc1", APPHELP, HELPPROC$)
- ENDIF
- IF sz$ = "CONTINUE" THEN
- ''Install only if it will fit.
- FOR i% = 1 TO 2 STEP 1
- IF GetListItem(BIGLIST1$, i%) <> "" THEN
- Toobig
- GOTO SETOPTIONSFILES
- END IF
- NEXT i%
- UIPop 1
- ELSEIF sz$ = "PATH" THEN
- GetPath
- ELSEIF sz$ = "CHK1" THEN
- CheckOptFiles EXAMPLESFILES
- RecalcOptFiles1 EXAMPLESFILES
- SetDriveStatus1
- GOTO SETOPTIONSFILES
- ELSEIF sz$ = "CHK2" THEN
- CheckOptFiles FILTERSFILES
- RecalcOptFiles1 FILTERSFILES
- SetDriveStatus1
- GOTO SETOPTIONSFILES
- ELSEIF sz$ = "REACTIVATE" THEN
- RecalcPath(1)
- SetDriveStatus1
- GOTO SETOPTIONSFILES
- ELSE
- AskEXIT
- GOTO SETOPTIONSFILES
- END IF
- END SUB
-
- SUB CheckSystem() STATIC
- '' Check for Windows Drive
-
- WinDrive$ = MID$(GetWindowsDir, 1, 1)
- IF IsDriveValid(WinDrive$) = 0 THEN
- i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.",SETUP_MSG$, MB_TASKMODAL+MB_ICONHAND+MB_OK)
- UIPopAll
- ERROR STFQUIT
- END IF
- '' Check for Windows Version
- IF GetWindowsMajorVersion() < 3 THEN
- i% = DoMsgBox("Ability for Windows required Windows 3.1 version.",SETUP_MSG$,MB_TASKMODAL+MB_ICONHAND+MB_OK)
- UIPopAll
- ERROR STFQUIT
- END IF
- IF GetWindowsMinorVersion() < 10 THEN
- i% = DoMsgBox("Ability for Windows required Windows 3.1 version.",SETUP_MSG$,MB_TASKMODAL+MB_ICONHAND+MB_OK)
- UIPopAll
- ERROR STFQUIT
- END IF
- IF GetWindowsMinorVersion() > 10 THEN
- Check% = 0
- ELSE
- Check% = 1
- END IF
-
- END SUB
-
-
- SUB FQuit() STATIC
- IF ERR = 0 THEN
- dlg% = EXITSUCCESS
- ELSEIF ERR = STFQUIT THEN
- dlg% = EXITQUIT
- ELSE
- dlg% = EXITFAILURE
- END IF
- QUITL1:
- sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO QUITL1
- END IF
- UIPop 1
- END SUB
-
- SUB InitData() STATIC
- OPTCUR$ = "1"
- DEST$ = "C:\ABILITY"
- WriteExamples% = 1
- WriteW4W% = 1
- DBExamples% = 1
- DBW4W% = 1
- SpreadExamples% = 1
- SpreadW4W% = 1
- FormsExamples% = 1
- ToolsSpelling% = 1
- ToolsCards% = 1
- WINDIRECTORY$ = GetWindowsDir()
-
- AddListItem CONFIRMTEXTLIST$,szUserName$
- AddListItem CONFIRMTEXTLIST$,szCompany$
-
- FOR i% = 1 TO 8 STEP 1
- AddListItem CHECKSTATES$, "ON"
- AddListItem STATUSTEXT$ , ""
- AddListItem DRIVETEXT$ , ""
- AddListItem BIGLIST$ , ""
- NEXT i%
- ReplaceListItem DRIVETEXT$ , 7, DEST$
- FOR i% = 1 TO 26 STEP 1
- AddListItem EXTRACOSTS$ ,"0"
- NEXT i%
- FOR i% = 1 TO 2 STEP 1
- AddListItem CHECKSTATES1$, "ON"
- AddListItem BIGLIST1$ , ""
- AddListItem STATUSTEXT1$ , ""
- NEXT i%
- FOR i% = 1 TO 7 STEP 1
- AddListItem DRIVETEXT1$ , ""
- NEXT i%
- ReplaceListItem DRIVETEXT1$ , 7, DEST$
- FOR i% = 1 TO 26 STEP 1
- AddListItem EXTRACOSTS1$ , "0"
- NEXT i%
- END SUB
-
- SUB UpdateAbilityIni() STATIC
- wrFile$ = MakePath(DEST$, "ABWRITE.EXE")
- dbFile$ = MakePath(DEST$, "ABDATA.EXE")
- ssFile$ = MakePath(DEST$, "ABSPREAD.EXE")
- chFile$ = MakePath(DEST$, "ABSPREAD.EXE")
- fmFile$ = MakePath(DEST$, "ABFORMS.EXE")
- drFile$ = MakePath(DEST$, "ABDRAW.EXE")
- tmFile$ = MakePath(DEST$, "ABCOMMS.EXE")
- lbFile$ = MakePath(DEST$, "ABILITY.EXE")
- AblFile$ = MakePath(DEST$, "ABILITY.INI")
- CreateIniKeyValue AblFile$,"Write","commandline",wrFile$,cmoOverwrite
- CreateIniKeyValue AblFile$,"DataBase","commandline",dbFile$,cmoOverwrite
- CreateIniKeyValue AblFile$,"DataBase","location",DEST$+"\ABILITY.ADB",cmoOverwrite
- CreateIniKeyValue AblFile$,"SpreadSheet","commandline",ssFile$,cmoOverwrite
- CreateIniKeyValue AblFile$,"Chart","commandline",ssFile$,cmoOverwrite
- CreateIniKeyValue AblFile$,"Forms","commandline",fmFile$,cmoOverwrite
- CreateIniKeyValue AblFile$,"Comms","commandline",tmFile$,cmoOverwrite
- CreateIniKeyValue AblFile$,"Draw","commandline",drFile$,cmoOverwrite
- CreateIniKeyValue AblFile$,"Library","commandline",lbFile$,cmoOverwrite
- CreateIniKeyValue AblFile$,"DefaultSettings","WritePath",DEST$+"\DOCS\",cmoOverwrite
- CreateIniKeyValue AblFile$,"DefaultSettings","DatabasePath",DEST$+"\",cmoOverwrite
- CreateIniKeyValue AblFile$,"DefaultSettings","SpreadsheetPath",DEST$+"\SHEETS\",cmoOverwrite
- CreateIniKeyValue AblFile$,"DefaultSettings","ChartPath",DEST$+"\SHEETS\",cmoOverwrite
- CreateIniKeyValue AblFile$,"DefaultSettings","FormsPath",DEST$+"\FORMS\",cmoOverwrite
- CreateIniKeyValue AblFile$,"DefaultSettings","CommsPath",DEST$+"\",cmoOverwrite
- CreateIniKeyValue AblFile$,"DefaultSettings","DrawPath",DEST$+"\FORMS\",cmoOverwrite
- CreateIniKeyValue AblFile$,"DefaultSettings","OtherPath",DEST$+"\",cmoOverwrite
-
- '$IFDEF UK
- CreateIniKeyValue AblFile$,"Languages","1","0",cmoOverwrite
- CreateIniKeyValue AblFile$,"Languages","2","1",cmoOverwrite
- '$ELSE
- CreateIniKeyValue AblFile$,"Languages","1","1",cmoOverwrite
- CreateIniKeyValue AblFile$,"Languages","2","0",cmoOverwrite
- '$ENDIF
-
- CreateIniKeyValue DEST$+"\QTUTOR\QT.INI","QTUTOR","Path",DEST$+"\QTUTOR",cmoOverwrite
-
- END SUB
-
-
- SUB UpdateCommsIni() STATIC
- CommsFile$ = MakePath(WINDIRECTORY$, "COMM.INI")
- CreateIniKeyValue CommsFile$,"Modem","UploadDir",DEST$,cmoOverwrite
- CreateIniKeyValue CommsFile$,"Modem","DownloadDir",DEST$,cmoOverwrite
- END SUB
-
-
- SUB UpdateWinIni() STATIC
- WinIniFile$ = MakePath(GetWindowsDir(),"WIN.INI")
- RegFile$ = MakePath(DEST$,"ABSPREAD.EXE")
- CreateIniKeyValue WinIniFile$,"Extensions","AWS",RegFile$+" ^.AWS",cmoOverwrite
- CreateIniKeyValue WinIniFile$,"Extensions","AWC",RegFile$+" ^.AWC",cmoOverwrite
- RegFile$ = MakePath(DEST$,"ABWRITE.EXE")
- CreateIniKeyValue WinIniFile$,"Extensions","AWW",RegFile$+" ^.AWW",cmoOverwrite
- RegFile$ = MakePath(DEST$,"ABDATA.EXE")
- CreateIniKeyValue WinIniFile$,"Extensions","AWD",RegFile$+" ^.AWD",cmoOverwrite
- RegFile$ = MakePath(DEST$,"ABDRAW.EXE")
- CreateIniKeyValue WinIniFile$,"Extensions","AWG",RegFile$+" ^.AWG",cmoOverwrite
- CreateIniKeyValue WinIniFile$,"Extensions","BMP",RegFile$+" ^.BMP",cmoOverwrite
- CreateIniKeyValue WinIniFile$,"Extensions","PCX",RegFile$+" ^.PCX",cmoOverwrite
- CreateIniKeyValue WinIniFile$,"Extensions","WMF",RegFile$+" ^.WMF",cmoOverwrite
- CreateIniKeyValue WinIniFile$,"Extensions","TIF",RegFile$+" ^.TIF",cmoOverwrite
- CreateIniKeyValue WinIniFile$,"Extensions","GIF",RegFile$+" ^.GIF",cmoOverwrite
- CreateIniKeyValue WinIniFile$,"Extensions","TGA",RegFile$+" ^.TGA",cmoOverwrite
- END SUB
-
-
- SUB CreateProgman() STATIC
- AbilityOffice$ = "Ability Office"
- CreateProgmanGroup AbilityOffice$, "", cmoNone
- ShowProgmanGroup AbilityOffice$, 1 , cmoNone
-
- IF GetListItem(CHECKSTATES$, MANAGERFILES) = "ON" THEN
- CreateProgmanItem AbilityOffice$, "Ability Manager", MakePath(DEST$,"ability.exe"), "", cmoOverwrite
- ENDIF
- IF GetListItem(CHECKSTATES$, WRITEFILES) = "ON" THEN
- CreateProgmanItem AbilityOffice$, "Ability Write", MakePath(DEST$,"abwrite.exe"), "", cmoOverwrite
- ENDIF
- IF GetListItem(CHECKSTATES$, DBFILES) = "ON" THEN
- CreateProgmanItem AbilityOffice$, "Ability Database", MakePath(DEST$,"abdata.exe"), "", cmoOverwrite
- ENDIF
- IF GetListItem(CHECKSTATES$, FORMSFILES) = "ON" THEN
- CreateProgmanItem AbilityOffice$, "Ability Forms", MakePath(DEST$,"abforms.exe"), "", cmoOverwrite
- CreateProgmanItem AbilityOffice$, "Ability Draw", MakePath(DEST$,"abdraw.exe"), "", cmoOverwrite
- ENDIF
- IF GetListItem(CHECKSTATES$, SPREADFILES) = "ON" THEN
- CreateProgmanItem AbilityOffice$, "Ability Spreadsheet", MakePath(DEST$,"abspread.exe"), "", cmoOverwrite
- CreateProgmanItem AbilityOffice$, "Ability Chart", MakePath(DEST$,"abspread.exe /g"),MakePath(DEST$,"abspread.exe")+",1,,,,", cmoOverwrite
- ENDIF
- IF GetListItem(CHECKSTATES$, COMMSFILES) = "ON" THEN
- CreateProgmanItem AbilityOffice$, "Ability Communicate", MakePath(DEST$,"abcomms.exe"), "", cmoOverwrite
- ENDIF
- CreateProgmanItem AbilityOffice$, "Ability Help", "winhelp.exe "+ MakePath(DEST$,"a4w.hlp"), ",,,,"+DEST$, cmoOverwrite
- IF GetListItem(CHECKSTATES$, TOOLSFILES) = "ON" THEN
- IF ToolsCards% = 1 THEN
- CreateProgmanItem AbilityOffice$, "QuickTutors", MakePath(DEST$+"\QTUTOR","qtutor.exe -q=t -w=0 -m=abqtutor.mas -i=0"), "", cmoOverwrite
- END IF
- ENDIF
-
- END SUB
-
-
- SUB AddToBillboard() STATIC
- lTicks& = 1
- AddToBillboardList CUIDLL$,7000,FMODELESSDLGPROC$,lTicks&
- AddToBillboardList CUIDLL$,7001,FMODELESSDLGPROC$,lTicks&
- AddToBillboardList CUIDLL$,7002,FMODELESSDLGPROC$,lTicks&
- AddToBillboardList CUIDLL$,7003,FMODELESSDLGPROC$,lTicks&
- AddToBillboardList CUIDLL$,7004,FMODELESSDLGPROC$,lTicks&
- AddToBillboardList CUIDLL$,7005,FMODELESSDLGPROC$,lTicks&
- AddToBillboardList CUIDLL$,7006,FMODELESSDLGPROC$,lTicks&
- AddToBillboardList CUIDLL$,7007,FMODELESSDLGPROC$,lTicks&
- END SUB
-
- SUB FillCopyList() STATIC
- AddOptFilesToCopyList APPFILES
- AddOptFilesToCopyList MANAGERFILES
- AddOptFilesToCopyList WRITEFILES
- AddOptFilesToCopyList DBFILES
- AddOptFilesToCopyList SPREADFILES
- AddOptFilesToCopyList FORMSFILES
- AddOptFilesToCopyList COMMSFILES
- AddOptFilesToCopyList TOOLSFILES
- AddOptFilesToCopyList SYSTEMFILES
- END SUB
-
-